将多个HTML文档合并成一个HTML文档

将多个HTML文档合并成一个HTML文档

目录

最近在看Vim插件方面的资料,原来一直都只用ctags和cscope看代码,发现看一些大型项目还是不太方便,还是得求助于更多的插件。找了一下发现还是易水老师的《Vi/Vim使用进阶》系列最靠谱,并且还提供pdf下载,于是下载了准备随身携带方便慢慢看。但打开发现有个问题,里面的插图太小了,需要点击小图并联网后才能打开大图,怎么办呢?易水老师也提供了html版本的系列文章下载,于是想可以用修改html版本的文章,替换成大图,再生成pdf,但现在的pdf工具好用的不多,还不支持多个html文档的合并。那能不能自己合并一下再转pdf呢?

于是花点时间研究了下如何合并HTML文档,对于结构完整的HTML文档,合并多个文档的过程是很简单的,就是选一个文档作为主干,将其余HTML文档的”< html>< body> … < /html>< /body>” 标记去掉并塞进主干文档当中。比较麻烦的是按照当需要合并的文档是有章节组织的,这个时候按照章节顺序来合并才有意义。于是又花了点时间研究了下,发现可以从目录中提取出顺序已经定好的章节信息。确定可行后,剩下的就是如何实现了,这个需求很简单,看来用不着专门为这个动用HTML语法的解析器,最快的办法还是用Bash脚本来实现,下面就是实现这个功能的脚本,供有同样需求的朋友参考:

merge_html.sh脚本

#! /bin/bash
# A simple HTML file merge scripts.
# Author: Lewis Liu
# Version: 0.1
# Merge HTML files in given folder and generate a mono html file called "all_in_one.html"
# User can specify an index file which contains a list of all files in chapter order, and
# if not specified, the script will use 'ls' to list all files that need to be merged.
# 

TARGET="all_in_one.html"
#clean result and intermediate files from last run
rm -vf ${TARGET} toc.tag *.sed index.list 

# default html tag tokens
TOKEN_TOC='<div class="toc">'
TOKEN_CHAP_PREFIX='<span class="chapter"><a href="'
TOKEN_CHAP_NAME='[0-9a-zA-Z,\_]+\.html'
TOKEN
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值